using Godot;
using System;
using Smr.基类;
using Smr.枚举;

public partial class 游戏管理
{
    public static 舞台场景 舞台实例;
    public static 战斗场景 战斗实例;
    public static 玩家场景 玩家实例;
    public static 组件背包 背包实例;
    public static 组件装备栏 装备栏实例;
    public static 日志场景 日志实例;

    public static void 置组件实例(string 组件名称, object 组件实例)
    {
        switch (组件名称)
        {
            case "舞台场景":
                舞台实例 = (舞台场景)组件实例;
                break;
            case "战斗场景":
                战斗实例 = (战斗场景)组件实例;
                break;
            case "玩家场景":
                玩家实例 = (玩家场景)组件实例;
                break;
            case "日志场景":
                日志实例 = (日志场景)组件实例;
                break;
            case "组件背包":
                背包实例 = (组件背包)组件实例;
                break;
            case "组件装备栏":
                装备栏实例 = (组件装备栏)组件实例;
                break;
            default:
                日志实例.置失败文本($"程序消息：<游戏管理.置组件实例>, [ {组件名称} ] 组件名称不存在!");
                break;
        }
    }

    public static void 背包装备置装备栏装备(string UUID)
    {
        C装备模型 背包装备 = (C装备模型)背包实例.取背包配置成员(UUID);
        C装备模型 装备栏装备 = 装备栏实例.取装备栏装备(背包装备.部位);
        if (装备栏装备 != null)
        {
            装备栏装备.道具位置 = E道具位置.背包;
            背包实例.置背包配置成员(装备栏装备, UUID);
        }
        else
        {
            背包实例.删背包配置成员(UUID);
        }
        背包装备.道具位置 = E道具位置.装备栏;
        装备栏实例.置装备栏装备(背包装备, 背包装备.部位);
        背包实例.刷新背包(背包实例.取选项卡索引());
        舞台实例.清空弹窗();
    }

    public static void 装备栏装备置背包装备(E装备部位 部位)
    {
        C装备模型 装备栏装备 = 装备栏实例.取装备栏装备(部位);
        if (装备栏装备 != null)
        {
            背包实例.置背包道具(装备栏装备);
        }
        舞台实例.清空弹窗();
    }
}
